import json
import sys

from pymongo import MongoClient


class DealPagehtml(object):

    def __init__(self):
        self.connection = MongoClient(
            "mongodb://xujiangrw:vipdatacenter@192.168.30.171:27017",
            # 如果“True”且服务器正在运行而没有日志记录，阻塞，直到服务器将所有数据文件同步到磁盘为止。
            fsync=False
        )
        self.db = self.connection['cnipa']

    def add_lange_stat(self):
        """
        给全表添加字段
        :return:
        """
        self.db.pagehtml.update({}, {"$set": {"country": "", "stat": 0}}, multi=True)

    def get_country(self):
        """
        从搜索页获取每条数据的国家
        :return:
        """
        while True:
            rows = self.db.pagehtml.find({"stat": 0}, {"_id": 1, "html": 1}).limit(100)
            if rows:
                for row in rows:
                    jsonstrings = row["html"]
                    dicts = json.loads(jsonstrings)
                    Lists = []
                    for item in dicts["searchResultDTO"]["searchResultRecord"]:
                        filedMap = item["fieldMap"]
                        LANG_VALUE = filedMap["LANG_VALUE"]
                        ID = filedMap["ID"]
                        LANG = filedMap["LANG"]
                        Lists.append({"ID": ID, "LANG_VALUE": LANG_VALUE, "LANG": LANG})
                    print(row["_id"])
                    self.db.pagehtml.update({"_id": row["_id"]},
                                            {"$set": {"country": Lists,
                                                      "stat": 1}})
            else:
                break

    def deal_col(self):
        """删除某个字段"""
        # self.db.pagehtml.update({}, {"$unset": {"stat": 1}}, multi=True)
        self.db.pagehtml.update({}, {"$unset": {"country": 1}}, multi=True)


# 不需要了 之前以为国家没有分离出来 现在发现在mysql已存在
if __name__ == "__main__":
    deal = DealPagehtml()
    deal.deal_col()
